Field of the Disclosure
The present Disclosure relates to an information processing apparatus, an information processing method, and a computer-readable storage medium for converting data.
Description of the Related Art
Web services called “cloud print service” have appeared recently in which a web service (server) generates print data based on a request from a user terminal (client) and a printer then receives and prints the print data. The cloud print service does not require users to install a device driver program (printer driver) for printer control on a user terminal and allows users to make a print request from anywhere. Therefore, the cloud print service is considered to become increasingly widespread in the future.
The implementation of the cloud print service results in the necessity of data conversion on the cloud from document data, as a print target, to print data compatible with various types of printers. Therefore, there is such a way that directly arranges, in a server on the cloud, printer drivers such as those previously used by user terminals (for example, personal computers (PCs)) and performs data conversion with a printer driver compatible with a printer to use.
However, in cases where multiple printer drivers are arranged on the cloud, since most printer drivers have common internal processing, the common portions would be redundantly retained on the cloud. Therefore, there may be considered a way to implement a data conversion service by commonalizing functions constituting the printer drivers (in the following description, the commonalized functions are referred to as “filters”) and combining the commonalized functions.
Japanese Patent Application Laid-Open No. 2013-093890 discusses implementing the functions of a printer driver by combining a plurality of data conversion filters used to perform conversion of input data.
Methods for data conversion processing on the cloud include a single process-based method and a multiple process-based method. Here, the “process” means a unit of processing with which an operating system (OS) performs processing of a computer program. The single process-based method is a method in which a plurality of pieces of data conversion processing is performed within a single process. On the other hand, the multiple process-based method is a method in which a plurality of pieces of data conversion processing is respectively performed with a plurality of separate processes.
The single process-based method is generally able to have higher performance in processing than the multiple process-based method. This is because, while the multiple process-based method requires an interprocess communication in exchanging data between processes, the single process-based method does with a function call between components or data exchange for memory without performing any interprocess communication, thus enabling high-speed processing. The single process-based method also makes designing simpler than the multiple process-based method, and thus enables reducing the number of man-hour of designing and implementation.
Japanese Patent Application Laid-Open No. 2013-093890, as mentioned above, discusses a technique to implement the functions of a printer driver by combining a plurality of data conversion filters. Data conversion with such a combination of a plurality of data conversion filters is generally performed with a single process of the filter and pipeline architecture for the reasons mentioned above.
However, the “cloud print service” needs to provide services 24 hours a day, 365 days a year and, thus, has an aspect that emphasizes its availability.
For example, in a case where designing and implementation are performed with the single process-based method, if any component for data conversion runs into crash or hang-up, the entire system (user system) may be entangled. If the entire system is entangled, the entire data conversion module may crash or hang up, thus coming to an abnormal end. Here, “hang-up” means a situation in which a reaction from software ceases due to infinite loop, deadlock, infinite recursion, or circular reference.
In addition, separate software may be required to reboot the system after the abnormal end. Furthermore, even if the system can be rebooted, the user system is not able to perform processing until the system is rebooted. In particular, if one of data conversion filters contains software the quality of which was insufficiently verified, crash or hang-up may occur frequently.
Moreover, crash or hang-up of the entire system may disable collecting logs, thus complicating fault analysis.